/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistemadecompras.interfaz;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import sistemadecompras.negocio.Ciudad;
import sistemadecompras.negocio.Ciudades;
import sistemadecompras.negocio.Direccion;
import sistemadecompras.negocio.Direcciones;

/**
 *
 * @author May
 */
public class PanelNuevasdirecciones extends javax.swing.JPanel {
 Direccion unaDireccion = new Direccion();
  Direcciones listaDirecciones = new Direcciones();
 Ciudad unaCiudad = new Ciudad();
  Ciudades listaCiudades = new Ciudades();
  /**
     * Creates new form PanelNuevasdirecciones
     */
    public PanelNuevasdirecciones() {
        initComponents();
        actualizaDirecciones();
        actualizaCiudades();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        PANEL_MANTENIMIENTO_DIRECCIONES = new javax.swing.JPanel();
        btnActivar = new javax.swing.JRadioButton();
        btnEliminarDireccion = new javax.swing.JButton();
        btnModificaDireccion = new javax.swing.JButton();
        btnBuscarDireccion = new javax.swing.JButton();
        btnGrabaDireccion = new javax.swing.JButton();
        jLabel11 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        txtIdDireccion = new javax.swing.JTextField();
        txtCalle = new javax.swing.JTextField();
        txtNumero = new javax.swing.JTextField();
        combociudades = new javax.swing.JComboBox();
        TXT_ID_CIUDA = new javax.swing.JTextField();
        btnActivarnuevaCity = new javax.swing.JRadioButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        tblDireccion = new javax.swing.JTable();

        btnActivar.setText("Activar Busqueda");
        btnActivar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnActivarActionPerformed(evt);
            }
        });

        btnEliminarDireccion.setText("Eliminar");
        btnEliminarDireccion.setEnabled(false);
        btnEliminarDireccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnEliminarDireccionActionPerformed(evt);
            }
        });

        btnModificaDireccion.setText("Modificar");
        btnModificaDireccion.setEnabled(false);
        btnModificaDireccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnModificaDireccionActionPerformed(evt);
            }
        });

        btnBuscarDireccion.setText("Buscar");
        btnBuscarDireccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnBuscarDireccionActionPerformed(evt);
            }
        });

        btnGrabaDireccion.setText("Grabar");
        btnGrabaDireccion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnGrabaDireccionMouseClicked(evt);
            }
        });
        btnGrabaDireccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnGrabaDireccionActionPerformed(evt);
            }
        });

        jLabel11.setText("Ciudad");

        jLabel9.setText("Numero:");

        jLabel3.setText("Calle:");

        jLabel8.setText("Id");

        txtIdDireccion.setEnabled(false);
        txtIdDireccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtIdDireccionActionPerformed(evt);
            }
        });

        txtCalle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtCalleActionPerformed(evt);
            }
        });
        txtCalle.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtCalleKeyPressed(evt);
            }
        });

        txtNumero.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtNumeroActionPerformed(evt);
            }
        });
        txtNumero.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                txtNumeroKeyPressed(evt);
            }
        });

        combociudades.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Ciudades" }));
        combociudades.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                combociudadesMouseClicked(evt);
            }
        });
        combociudades.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                combociudadesActionPerformed(evt);
            }
        });

        TXT_ID_CIUDA.setEditable(false);
        TXT_ID_CIUDA.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                TXT_ID_CIUDAActionPerformed(evt);
            }
        });
        TXT_ID_CIUDA.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                TXT_ID_CIUDAKeyPressed(evt);
            }
        });

        btnActivarnuevaCity.setText("Activar Nueva Ciudad");
        btnActivarnuevaCity.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnActivarnuevaCityActionPerformed(evt);
            }
        });

        tblDireccion.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Codigo", "Calle", "Numero", "Ciudad"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, true, true, true
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tblDireccion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tblDireccionMouseClicked(evt);
            }
        });
        tblDireccion.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                tblDireccionKeyPressed(evt);
            }
        });
        jScrollPane3.setViewportView(tblDireccion);

        javax.swing.GroupLayout PANEL_MANTENIMIENTO_DIRECCIONESLayout = new javax.swing.GroupLayout(PANEL_MANTENIMIENTO_DIRECCIONES);
        PANEL_MANTENIMIENTO_DIRECCIONES.setLayout(PANEL_MANTENIMIENTO_DIRECCIONESLayout);
        PANEL_MANTENIMIENTO_DIRECCIONESLayout.setHorizontalGroup(
            PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                        .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3)
                            .addComponent(jLabel8))
                        .addGap(32, 32, 32))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                        .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel9)
                            .addComponent(jLabel11))
                        .addGap(18, 18, 18)))
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(txtCalle)
                    .addComponent(txtNumero)
                    .addComponent(txtIdDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, 217, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(combociudades, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(btnActivarnuevaCity)
                .addGap(0, 0, Short.MAX_VALUE))
            .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                        .addComponent(btnGrabaDireccion)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                                .addComponent(btnBuscarDireccion)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(btnModificaDireccion)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btnEliminarDireccion))
                            .addComponent(TXT_ID_CIUDA, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(btnActivar))
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 471, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(20, Short.MAX_VALUE))
        );
        PANEL_MANTENIMIENTO_DIRECCIONESLayout.setVerticalGroup(
            PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtIdDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtCalle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3))
                .addGap(6, 6, 6)
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel9))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(combociudades, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(TXT_ID_CIUDA, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(btnActivarnuevaCity))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PANEL_MANTENIMIENTO_DIRECCIONESLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(btnGrabaDireccion)
                        .addComponent(btnBuscarDireccion)
                        .addComponent(btnModificaDireccion)
                        .addComponent(btnEliminarDireccion))
                    .addComponent(btnActivar, javax.swing.GroupLayout.Alignment.TRAILING))
                .addGap(30, 30, 30)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(PANEL_MANTENIMIENTO_DIRECCIONES, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(PANEL_MANTENIMIENTO_DIRECCIONES, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
    }// </editor-fold>//GEN-END:initComponents

    private void btnActivarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnActivarActionPerformed
        // TODO add your handling code here:
        if (btnActivar.isSelected() == true) {
            btnBuscarDireccion.setEnabled(true);
            txtIdDireccion.setEnabled(true);
        } else {
            btnBuscarDireccion.setEnabled(false);
            txtIdDireccion.setEnabled(false);
        }
    }//GEN-LAST:event_btnActivarActionPerformed
 
       private void actualizaCiudades() {
        listaCiudades.listar();
        combociudades.removeAllItems();
        combociudades.addItem("");     
        ArrayList ciudades = new ArrayList();
        ciudades = listaCiudades.getCiudades();
       
        for (int i = 0; i < ciudades.size(); i++) {
            Ciudad otraCiudad = new Ciudad();
            otraCiudad = (Ciudad) ciudades.get(i);
            combociudades.addItem(otraCiudad.getId_ciudad() + ", " + otraCiudad.getCiudad());           
        }
    }
    
    
    private void actualizaDirecciones() {
        listaDirecciones.listar();
        ArrayList direcciones = new ArrayList();
        direcciones = listaDirecciones.getDirecciones();
        DefaultTableModel temp = (DefaultTableModel) tblDireccion.getModel();
       // combodirecciones.removeAllItems();
     //   combodirecciones.addItem("");
        for (int i = tblDireccion.getRowCount() - 1; i >= 0; i--) {
            temp.removeRow(i);
        }
        for (int i = 0; i < direcciones.size(); i++) {
            Direccion otraDireccion = new Direccion();
            otraDireccion = (Direccion) direcciones.get(i);
         //   combodirecciones.addItem(otraDireccion.getId_dir() + ", " + otraDireccion.getCalle() + ", " + otraDireccion.getNumero());
            Object nuevo[] = {otraDireccion.getId_dir(), otraDireccion.getCalle(), otraDireccion.getNumero(), otraDireccion.getId_ciudad()};
            temp.addRow(nuevo);
        }
        tblDireccion.setModel(temp);
        txtIdDireccion.setText("");
        txtCalle.setText("");
        txtNumero.setText("");
    }
    
    private void btnEliminarDireccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnEliminarDireccionActionPerformed
        if (actualizaCodigosDirecciones(Integer.parseInt(txtIdDireccion.getText())) == true) {
            if (unaDireccion.eliminar(Integer.parseInt(txtIdDireccion.getText())) == true) {
                JOptionPane.showMessageDialog(null, "Datos Eliminados Satisfactoriamente...", "", JOptionPane.INFORMATION_MESSAGE);

                actualizaDirecciones();

                txtIdDireccion.setText("");
                txtCalle.setText("");
                txtNumero.setText("");
            }
        } else {
            JOptionPane.showMessageDialog(null, "Error, no se puede eliminar la direccion...", "", JOptionPane.ERROR_MESSAGE);

        }
        btnModificaDireccion.setEnabled(false);
        btnEliminarDireccion.setEnabled(false);
    }//GEN-LAST:event_btnEliminarDireccionActionPerformed

    private void btnModificaDireccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModificaDireccionActionPerformed
        if (actualizaCodigosDirecciones(Integer.parseInt(txtIdDireccion.getText())) == true) {
            unaDireccion.setId_dir(Integer.parseInt(txtIdDireccion.getText()));
            unaDireccion.setCalle(txtCalle.getText());
            unaDireccion.setNumero(txtNumero.getText());

            boolean modifica = unaDireccion.modificar();
            if (modifica == true) {
                JOptionPane.showMessageDialog(null, "Datos Editados Satisfactoriamente...", "", JOptionPane.INFORMATION_MESSAGE);
                actualizaDirecciones();
            } else {
                JOptionPane.showMessageDialog(null, "Error al Modificar", "", JOptionPane.ERROR_MESSAGE);

            }

        } else {
            JOptionPane.showMessageDialog(null, "No existe la direccion a modificar", "", JOptionPane.ERROR_MESSAGE);

        }
        btnModificaDireccion.setEnabled(false);
        btnEliminarDireccion.setEnabled(false);
    }//GEN-LAST:event_btnModificaDireccionActionPerformed

    private void btnBuscarDireccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBuscarDireccionActionPerformed
        if (txtIdDireccion.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Error es importante que llene el campo ID para buscar", "", JOptionPane.ERROR_MESSAGE);
        } else {
            unaDireccion.setId_dir(Integer.parseInt(txtIdDireccion.getText()));
            boolean buscar = unaDireccion.buscar();
            if (buscar == false) {
                JOptionPane.showMessageDialog(null, "No existe una direccion con esa id...", "", JOptionPane.ERROR_MESSAGE);
                txtIdDireccion.setText("");
                txtCalle.setText("");
                txtNumero.setText("");
                btnModificaDireccion.setEnabled(false);
                btnEliminarDireccion.setEnabled(false);
            } else {

                btnActivar.setSelected(false);
                btnModificaDireccion.setEnabled(true);
                btnEliminarDireccion.setEnabled(true);
                btnBuscarDireccion.setEnabled(false);
               
            }
            txtIdDireccion.setEnabled(false);
    }//GEN-LAST:event_btnBuscarDireccionActionPerformed
 }
    private void btnGrabaDireccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnGrabaDireccionActionPerformed
        if (txtCalle.getText().equals("") || txtNumero.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Debe llenar los campos de texto", "", JOptionPane.ERROR_MESSAGE);
        } 
        
        else {
            if(btnActivarnuevaCity.isSelected()==true&& !TXT_ID_CIUDA.getText().equals("") ){
             unaCiudad.setCiudad(TXT_ID_CIUDA.getText());
              boolean p=unaCiudad.grabar();
              if (p == true) {
                     boolean busco = unaCiudad.buscaIdesSegunCiudades(TXT_ID_CIUDA.getText());
                     if (busco==true){
                         unaDireccion.setCalle(txtCalle.getText());
                         unaDireccion.setNumero(txtNumero.getText());
                         unaDireccion.setId_ciudad(unaCiudad.getId_ciudad());
                              boolean r = unaDireccion.grabar();
                                if (r == true) {
                                JOptionPane.showMessageDialog(null, "Datos Grabados Satisfactoriamente...", "", JOptionPane.INFORMATION_MESSAGE);
                                actualizaDirecciones();
                               } 
                       }    
               }
              else if (p == false) {
                JOptionPane.showMessageDialog(null, "Error al Grabar datos", "", JOptionPane.INFORMATION_MESSAGE);
               }  
            }// CREACION DE NUEVA CITY CON LA NUEVA DIRECCION
            else if(btnActivarnuevaCity.isSelected()==false&& !TXT_ID_CIUDA.getText().equals(""))
            {
            unaDireccion.setCalle(txtCalle.getText());
            unaDireccion.setNumero(txtNumero.getText());
            unaDireccion.setId_ciudad(Integer.parseInt(TXT_ID_CIUDA.getText()));
            boolean r = unaDireccion.grabar();
            if (r == true) {
                JOptionPane.showMessageDialog(null, "Datos Grabados Satisfactoriamente...", "", JOptionPane.INFORMATION_MESSAGE);
                actualizaDirecciones();
            } else if (r == false) {
                JOptionPane.showMessageDialog(null, "Error al Grabar datos", "", JOptionPane.INFORMATION_MESSAGE);
            }
          }//CREACION DE CITY EXISTENTE CON NUEVA DIRECCION
            
        }
        TXT_ID_CIUDA.setText("");
    }//GEN-LAST:event_btnGrabaDireccionActionPerformed

    private void txtIdDireccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtIdDireccionActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtIdDireccionActionPerformed

    private void txtCalleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtCalleActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtCalleActionPerformed

    private void txtCalleKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtCalleKeyPressed
        Sletras(txtCalle);
    }//GEN-LAST:event_txtCalleKeyPressed

    private void txtNumeroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNumeroActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txtNumeroActionPerformed

    private void txtNumeroKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNumeroKeyPressed
        SCalle(txtNumero);
    }//GEN-LAST:event_txtNumeroKeyPressed

    private void combociudadesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_combociudadesMouseClicked
        StringTokenizer tokens = new StringTokenizer((String) combociudades.getSelectedItem(), ",");
        try {
            TXT_ID_CIUDA.setText(tokens.nextToken());//
        } catch (NoSuchElementException e) {
        }
    }//GEN-LAST:event_combociudadesMouseClicked

     private boolean actualizaCodigosDirecciones(int codi) {
        listaDirecciones.listarCodigos();
        ArrayList codigos = new ArrayList();
        codigos = listaDirecciones.getCodigos();//listaCiudades.getCiudades();
        for (int i = 0; i < codigos.size(); i++) {
            System.out.println(codigos.get(i));
            System.out.println(codi);
            if (codigos.get(i) == (codi)) {
                System.out.println(codigos.get(i));
                System.out.println(codi);
                return true;
            }
        }
        return false;
    }
     
       public void Sletras(JTextField a) {
        a.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
                char c = e.getKeyChar();
                if (Character.isDigit(c)) {
                    getToolkit().beep();
                    e.consume();
                }
            }
        });
    }
     public void SNumeros(JTextField a) {
        a.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
                char c = e.getKeyChar();
                if (!Character.isDigit(c)) {
                    getToolkit().beep();
                    e.consume();
                }
            }
        });
    }

    public void SCalle(JTextField a) {
        a.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
                char c = e.getKeyChar();

                if (!Character.isDigit(c) && (c != '-')) {
                    getToolkit().beep();
                    e.consume();
                }
            }
        });
    }
    private void combociudadesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_combociudadesActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_combociudadesActionPerformed

    private void TXT_ID_CIUDAActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_TXT_ID_CIUDAActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_TXT_ID_CIUDAActionPerformed

    private void TXT_ID_CIUDAKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_TXT_ID_CIUDAKeyPressed
        // TODO add your handling code here:
    }//GEN-LAST:event_TXT_ID_CIUDAKeyPressed

    private void tblDireccionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblDireccionMouseClicked
       
        txtIdDireccion.setText(tblDireccion.getValueAt(tblDireccion.getSelectedRow(), 0).toString());
        txtCalle.setText(tblDireccion.getValueAt(tblDireccion.getSelectedRow(), 1).toString());
        txtNumero.setText(tblDireccion.getValueAt(tblDireccion.getSelectedRow(), 2).toString());
        btnEliminarDireccion.setEnabled(true);
        btnModificaDireccion.setEnabled(true);
    }//GEN-LAST:event_tblDireccionMouseClicked

    private void tblDireccionKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tblDireccionKeyPressed
        // TODO add your handling code here:
    }//GEN-LAST:event_tblDireccionKeyPressed

    private void btnActivarnuevaCityActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnActivarnuevaCityActionPerformed
 if (btnActivarnuevaCity.isSelected() == true) {
     combociudades.setEnabled(false);
     TXT_ID_CIUDA.setEnabled(true);
     TXT_ID_CIUDA.setEditable(true);
        } else {
            TXT_ID_CIUDA.setEnabled(false);
            combociudades.setEnabled(true);
        }
    }//GEN-LAST:event_btnActivarnuevaCityActionPerformed

    private void btnGrabaDireccionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnGrabaDireccionMouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_btnGrabaDireccionMouseClicked

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel PANEL_MANTENIMIENTO_DIRECCIONES;
    private javax.swing.JTextField TXT_ID_CIUDA;
    private javax.swing.JRadioButton btnActivar;
    private javax.swing.JRadioButton btnActivarnuevaCity;
    private javax.swing.JButton btnBuscarDireccion;
    private javax.swing.JButton btnEliminarDireccion;
    private javax.swing.JButton btnGrabaDireccion;
    private javax.swing.JButton btnModificaDireccion;
    private javax.swing.JComboBox combociudades;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JTable tblDireccion;
    private javax.swing.JTextField txtCalle;
    private javax.swing.JTextField txtIdDireccion;
    private javax.swing.JTextField txtNumero;
    // End of variables declaration//GEN-END:variables
}
